package mq

import "fmt"

var done chan bool

// 监听队列获取消息
func StartConsume(qName, cName string, callback func(msg []byte) bool) {
	//通过channel。Consume获取消息信道
	msgs, err := channel.Consume(
		qName,
		cName,
		true,
		false, 
		false,
		false,
		nil)
	if err != nil {
		
		fmt.Println(err.Error())
		return
	}

	done = make(chan bool)

	go func ()  {
		//循环获取队列的消息
		for msg := range msgs{
			//callback来处理新消息
			if procssSuc := callback(msg.Body);!procssSuc{
				//TODO 将任务写到另一个队列，用于异常情况的重试
			}
		}
		//done <- true
	}()
	
	//done中没有新的消息过来，会一直阻塞
	<-done

	//关闭通道
	channel.Close()
}
